package cn.seecoder.ai.service;

import cn.seecoder.ai.model.vo.ResultVO;
import cn.seecoder.ai.model.vo.UserVO;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;

import javax.validation.Valid;

/**
 * @author fanyanpeng
 * @date 2023/4/11 0:54
 */
@Validated
public interface UserService {

    /**
     * 注册，注册成功则返回userVO
     * @author   fanyanpeng
     * @date 2023/4/11 4:40
     * @param userVO
     * @return cn.seecoder.ai.model.vo.UserVO
     */
    UserVO register(@Valid UserVO userVO);



    /**
     * 登录，登录成功则返回userVO
     * 登录失败：
     * 密码错误
     * @author   fanyanpeng
     * @date 2023/4/11 4:40
     * @param userVO
     * @return cn.seecoder.ai.model.vo.UserVO
     */
    UserVO login(@Valid UserVO userVO);


    /**
     * 根据用户id返回用户；若传入数据为null或者没有用户，返回null
     * 供其他组件调用，密码已经清空
     * @author   fanyanpeng
     * @date 2023/4/11 4:44
     * @param userId 用户id
     * @return cn.seecoder.ai.model.vo.UserVO
     */
    UserVO getUserVOById(Integer userId);

}
